/*
题目: 最大连续1的个数
给定一个二进制数组 nums 和一个整数 k，如果可以翻转最多 k 个 0 ，则返回 数组中连续 1 的最大个数 。

https://leetcode.cn/problems/max-consecutive-ones-iii/
 */
public class LongestOnes {
    public int longestOnes(int[] nums, int k) {
        // 滑动窗口
        int left = 0;
        int kk = 0;

        int src = 0;
        for (int i = 0; i < nums.length; i ++) {
            if (nums[i] == 0)   kk ++;

            while (kk > k && left <= i) {
                if (nums[left ++] == 0)    kk--;
            }
            src = Math.max(src, i - left + 1);
        }

        return src;
    }
}
